package com.qishanor.system.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qishanor.framework.mybatis.datascope.ZeusBaseMapper;
import com.qishanor.system.model.GenColumnEntity;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
  @description: 代码生成器 Mapper接口
  @author: 周振林
  @date: 2022/4/27
  
  @Copyright: 博客：http://www.zhouzhenlin.com - 沉淀、分享、成长、让自己和他人都有所收获
**/

public interface GeneratorMapper extends ZeusBaseMapper<GenColumnEntity> {

	/**
	 * 分页查询表格
	 * @param page 分页信息
	 * @param tableName 表名称
	 * @return
	 */
	IPage<Map<String, Object>> queryTable(Page page, @Param("tableName") String tableName);

	/**
	 * 查询表信息
	 * @param tableName 表名称
	 * @param dsName 数据源名称
	 * @return
	 */
	@DS("#last")
	Map<String, String> queryTable(@Param("tableName") String tableName, String dsName);

	/**
	 * 分页查询表分页信息
	 * @param page
	 * @param tableName
	 * @param dsName
	 * @return
	 */
	@DS("#last")
    IPage<GenColumnEntity> selectTableColumn(Page page, @Param("tableName") String tableName,
											 @Param("dsName") String dsName);

	///**
	// * 查询表全部列信息
	// * @param tableName
	// * @param dsName
	// * @return
	// */
	//@DS("#last")
	//List<GenColumnEntity> selectTableColumn(@Param("tableName") String tableName, @Param("dsName") String dsName);

	/**
	 * 查询表全部列信息
	 * @param tableName 表名称
	 * @param dsName 数据源名称
	 * @return
	 */
	@DS("#last")
	List<Map<String, String>> selectMapTableColumn(@Param("tableName") String tableName, String dsName);

}
